using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DominioSATT;
using RepositorioSATT;

namespace ServiceSATT
{
    public class AfiliadoclubService:IAfiliadoclubService
    {

        void IAfiliadoclubService.ObtenerAfiliadoclub(IInterfazAfiliadoclub ui)
        {
            
            IAfiliadoclubRepositorio AfClub = new AfiliadoclubRepositorio();
            IClubRepositorio ClubRep= new ClubRepositorio();
            int id = ClubRep.ObtenerId(ui.Club);
            Afiliadoclub AfiliadoClub =  AfClub.Buscar(ui.Dni, id);
            if (AfiliadoClub!=null)
            ui.Estado = AfiliadoClub.Estado;          
        }

        void IAfiliadoclubService.Modificar(IInterfazAfiliadoclub ui)
        {
            IAfiliadoclubRepositorio AfilClub = new AfiliadoclubRepositorio();
            IClubRepositorio Club = new ClubRepositorio();
            IPersonaRepositorio Persona= new PersonaRepositorio();
            int idclub=Club.ObtenerId(ui.Club);
            
            Afiliadoclub NuevoAfilClub = AfilClub.Buscar(ui.Dni, idclub);
            
            if (NuevoAfilClub==null)
            {
                Afiliadoclub AfClub = new Afiliadoclub();
                AfClub.Afiliado = Persona.Obtener(ui.Dni);
                AfClub.Fechainscripcion = ui.Fechainscripcion;
                AfClub.Estado = ui.Estado;
                AfClub.Club = Club.Buscar(idclub);
                AfilClub.Agregar(AfClub);
            }
            else
            {
                NuevoAfilClub.Estado = ui.Estado;
                AfilClub.Modificar(NuevoAfilClub);
                
            }
        }

        void IAfiliadoclubService.ListaAfiliadoclub(IListadoAfiliadoClub ui)
        {
            IAfiliadoclubRepositorio Rep = new AfiliadoclubRepositorio();
            IClubRepositorio Club = new ClubRepositorio();
            int id = Club.ObtenerId(ui.Club);
            List<Afiliadoclub> ListaInscripciones = Rep.Listar(id);
            string[][] Lista = new string[ListaInscripciones.Count][];
            int i = 0;
            foreach (Afiliadoclub Objeto in ListaInscripciones)
            {
                Lista[i] = new string[] {Objeto.Afiliado.Dni.ToString(), Objeto.Afiliado.Apellido+" "+Objeto.Afiliado.Nombre,Objeto.Fechainscripcion.ToShortDateString()};
                i++;
            }
            ui.LstAfiliadoClub = Lista;
        }


    }
}
